//
// Created by lxx on 2022/1/6.
//
/**
 * 直接从RQMCRT里摘过来的，用于加载xxx，似乎可以删去
 */

#ifndef CQMCRT_CLOUDLOADER_H
#define CQMCRT_CLOUDLOADER_H

#include <cuda_runtime.h>

#include <string>

namespace solar
{
    class CloudLoader
    {
        private:
            static CloudLoader* cloudLoaders;

        public:
            CloudLoader() = default;
            int x_size{};
            int y_size{};
            float pixel{};
            float2 bound_NW{};
            float2 bound_NE{};
            float2 bound_SE{};
            float2 bound_SW{};
            float* cloudMap{};
            float* d_cloudMap{};
            float3 start_point{};
            auto loadCloudMap(std::string configuration_file_path) -> int;
            static auto getInstance() -> CloudLoader*;
            ~CloudLoader();
            auto clear() -> bool;
    };
} // namespace solar

#endif // CQMCRT_CLOUDLOADER_H
